package com.dao;

import com.util.ConnUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class BaseDao {
    private ConnUtil Dbutils;

    /**
     * 编写一个通用的方法，用于对数据库表进行增删改
     *
     * @param sql
     * @param params
     * @return
     */
    public boolean update(String sql, Object[] params) {
        boolean flag = false;
        // 1、获取数据库的连接
        Connection conn = Dbutils.getConnection();
        PreparedStatement pstmt = null;
        // 2、根据conn对象获取预处理语句集对象
        try {
            pstmt = conn.prepareStatement(sql);
            // 给占位符设置值
            for (int i = 0; i < params.length; i++) {
                pstmt.setObject(i + 1, params[i]);
            }
            // 执行
            int i = pstmt.executeUpdate();
            if (i > 0) {
                flag = true;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 释放资源
            // 不管是否有异常，都会执行的代码，编写在这里
            // 关闭资源
            if (conn != null) {
                Dbutils.closeConnection(conn);
            }
            if (pstmt != null) {
                try {
                    pstmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        return flag;
    }
}
